#define _CRT_SECURE_NO_WARNINGS

//#include <iostream>
//
//using std::cout;
//using std::cin;
//using std::endl;
//
//void fun(const int& rb)
//{
//	cout << rb << endl;
//}

//int main()
//{
	//int a = 10;
	//const int& ra = a;
	//int& rra = ra;

	//const int b = 20;
	//int& rb = b;
	//const int& rrb = b;

//	double b = 13.14;
//
////1.
//	int a = b;
//	int a = (int)b;
//
////2.
//	// 2.1.
//	int& rb = b;
//	const int& rrb = b;
//	// 2.2.
//	int& rrrb = (int)b;
//	const int& rrrrb = (int)b;

	//double b = 13.14;
	//fun(b);

	//return 0;
//}

//
//#include <iostream>
//
//using std::cout;
//using std::cin;
//using std::endl;
//
//#define ADD(x, y) ((x) + (y))
//
//int main()
//{
//	//printf("%d\n", ADD(2, 3));
//
//	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
//
//	for (auto& e : arr)
//	{
//		e *= 2;
//	}
//
//	for (auto i : arr)
//	{
//		cout << i << ' ';
//	}
//
//	int a = 10;
//	auto sa = 10;
//	int* pa = &a;
//	int& ra = a;
//	auto& rra = a;
//	double b = (double)a;
//
//	cout << endl;
//	cout << typeid(a).name() << endl;
//	cout << typeid(sa).name() << endl;
//	cout << typeid(pa).name() << endl;
//	cout << typeid(ra).name() << endl;
//	cout << typeid(rra).name() << endl;
//	cout << typeid(b).name() << endl;
//
//	return 0;
//} 




#include <iostream>
#include <assert.h>

using std::cout;
using std::cin;
using std::endl;

//class stu
//{
//public:
//	void StuInit()
//	{
//		next = nullptr;
//		money = 100;
//	}
//
//	void PrintStuMoney()
//	{
//		cout << money << endl;
//	}
//
//private:
//	stu* next;
//	int money;
//};

class date
{
public:
	void init(int year, int month, int day)
	{
		_year = year;
		_month = month;
		_day = day;
	}

	void print()
	{
		cout << _year << ' ' << _month << ' ' << _day << endl;
	}

private:
	int _year;
	int _month;
	int _day;
};

int main()
{
	////stu s;
	////s.StuInit();
	////s.PrintStuMoney();

	//cout << sizeof(nullptr) << endl;
	//cout << sizeof((void*)0) << endl;

	date d1;
	d1.init(2023, 1, 17);
	d1.print();

	date d2;
	d2.init(2023, 1, 17);
	d2.print();

	return 0;
}

